<!-- HTML header for doxygen 1.8.3.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>Nordic Thingy:52 v2.2.0 : GPIO extender LED driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra_stylesheet_offline.css" rel="stylesheet" type="text/css"/>
<link href="nordic.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0" width="100%" class="blank">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Nordic Semiconductor" src="nordic_small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Nordic Thingy:52 v2.2.0
   </div>
  </td>
 </tr>
 </tbody>
</table>
<script>
var url=window.location.href.split("/").reverse()[1];
var validLinks= ["nrf5","s130","s132","s212","s332"];
var index;
for (index = 0; index < validLinks.length; ++index) {
   if ( url.indexOf(validLinks[index]) !== -1 ) {
      document.getElementById(validLinks[index]).setAttribute('class', 'doclinks docselected');
   };
};
</script>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__gpio__ext__driver__led.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">GPIO extender LED driver<div class="ingroups"><a class="el" href="group__drivers.html">Drivers</a> &raquo; <a class="el" href="group__gpio__ext__driver.html">GPIO extender</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>GPIO extender LED driver API.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__conf__t.html">drv_ext_light_conf_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct that defines the type of light (monochrome or RGB) and the corresponding connected pins. All lights are per definition sinked (The IO extender provides ground to the lights).  <a href="structdrv__ext__light__conf__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__data__t.html">drv_ext_light_data_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">App timer and internal light timing struct.  <a href="structdrv__ext__light__data__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__init__t.html">drv_ext_light_init_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct for initializing the light driver.  <a href="structdrv__ext__light__init__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__rgb__intensity__t.html">drv_ext_light_rgb_intensity_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simplified struct for setting RGB intensity directly.  <a href="structdrv__ext__light__rgb__intensity__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__rgb__sequence__t.html">drv_ext_light_rgb_sequence_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The color mix and sequence variables if a sequence (e.g. breathe) is used.  <a href="structdrv__ext__light__rgb__sequence__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdrv__ext__light__status__t.html">drv_ext_light_status_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct used by the app_timer handler, mainly for power saving.  <a href="structdrv__ext__light__status__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga6e1e3913bb1c17a3b4868732f67f54fd"><td class="memItemLeft" align="right" valign="top"><a id="ga6e1e3913bb1c17a3b4868732f67f54fd"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga6e1e3913bb1c17a3b4868732f67f54fd">DRV_EXT_LIGHT_DEF</a>(light_id)</td></tr>
<tr class="memdesc:ga6e1e3913bb1c17a3b4868732f67f54fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define to create timers associated with each light source. <br /></td></tr>
<tr class="separator:ga6e1e3913bb1c17a3b4868732f67f54fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d6a47aeec194a0f794e99430d600249"><td class="memItemLeft" align="right" valign="top"><a id="ga4d6a47aeec194a0f794e99430d600249"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga4d6a47aeec194a0f794e99430d600249">DRV_EXT_LIGHT_INTENSITY_MAX</a>&#160;&#160;&#160;((uint8_t)(0xFF))</td></tr>
<tr class="memdesc:ga4d6a47aeec194a0f794e99430d600249"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum light intensity value. <br /></td></tr>
<tr class="separator:ga4d6a47aeec194a0f794e99430d600249"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa73716fd9fe54af5f2fa069ca466da42"><td class="memItemLeft" align="right" valign="top"><a id="gaa73716fd9fe54af5f2fa069ca466da42"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#gaa73716fd9fe54af5f2fa069ca466da42">DRV_EXT_LIGHT_INTENSITY_OFF</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="memdesc:gaa73716fd9fe54af5f2fa069ca466da42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum light intensity value (off). <br /></td></tr>
<tr class="separator:gaa73716fd9fe54af5f2fa069ca466da42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15c4951c0665577c37f2cba4ae2a633b"><td class="memItemLeft" align="right" valign="top"><a id="ga15c4951c0665577c37f2cba4ae2a633b"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga15c4951c0665577c37f2cba4ae2a633b">DRV_EXT_LIGHT_INVALID_RESYNC_PIN</a>&#160;&#160;&#160;255</td></tr>
<tr class="memdesc:ga15c4951c0665577c37f2cba4ae2a633b"><td class="mdescLeft">&#160;</td><td class="mdescRight">If IO extender resync pin is unused. <br /></td></tr>
<tr class="separator:ga15c4951c0665577c37f2cba4ae2a633b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga958a3db4ecc863d150e6498efabe108c"><td class="memItemLeft" align="right" valign="top"><a id="ga958a3db4ecc863d150e6498efabe108c"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga958a3db4ecc863d150e6498efabe108c">DRV_EXT_LIGHT_IOEXT_CLKX_DIV_MAX</a>&#160;&#160;&#160;(DRV_SX1509_MISC_CLKX_Msk &gt;&gt; DRV_SX1509_MISC_CLKX_Pos)</td></tr>
<tr class="memdesc:ga958a3db4ecc863d150e6498efabe108c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum ClkX divider. <br /></td></tr>
<tr class="separator:ga958a3db4ecc863d150e6498efabe108c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3cd23071441d22e48823f17ee3879d87"><td class="memItemLeft" align="right" valign="top"><a id="ga3cd23071441d22e48823f17ee3879d87"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga3cd23071441d22e48823f17ee3879d87">DRV_EXT_LIGHT_MAX_PIN_ID_ALLOWED</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:ga3cd23071441d22e48823f17ee3879d87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Highest I/O extender pin ID possible for a connected light. Dependent on driver implementation. <br /></td></tr>
<tr class="separator:ga3cd23071441d22e48823f17ee3879d87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0940cc3ff13afcdf3853eb049cdc582"><td class="memItemLeft" align="right" valign="top"><a id="gac0940cc3ff13afcdf3853eb049cdc582"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#gac0940cc3ff13afcdf3853eb049cdc582">DRV_EXT_LIGHT_NUM_LIGHTS_MAX</a></td></tr>
<tr class="memdesc:gac0940cc3ff13afcdf3853eb049cdc582"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of lights, depends on the IO extender and maximum of current implementation (16). <br /></td></tr>
<tr class="separator:gac0940cc3ff13afcdf3853eb049cdc582"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d894298e8457de0c60fb8b1096889e2"><td class="memItemLeft" align="right" valign="top"><a id="ga0d894298e8457de0c60fb8b1096889e2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga0d894298e8457de0c60fb8b1096889e2">DRV_EXT_LIGHT_STATUS_INIT</a></td></tr>
<tr class="memdesc:ga0d894298e8457de0c60fb8b1096889e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default initial value configuration for each light. <br /></td></tr>
<tr class="separator:ga0d894298e8457de0c60fb8b1096889e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91dc242272b1b5cac0acb2a926ad3bc7"><td class="memItemLeft" align="right" valign="top"><a id="ga91dc242272b1b5cac0acb2a926ad3bc7"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga91dc242272b1b5cac0acb2a926ad3bc7">SEQUENCE_REAL_VAL_INIT</a>(PARAM)&#160;&#160;&#160;drv_ext_light_sequence_t PARAM = SEQUENCE_DEFAULT_VAL</td></tr>
<tr class="memdesc:ga91dc242272b1b5cac0acb2a926ad3bc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Macro for initializing the sequence struct with default values. <br /></td></tr>
<tr class="separator:ga91dc242272b1b5cac0acb2a926ad3bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gabc6126af1d45847bc59afa0aa3216b04"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="group__gpio__ext__driver__led.html#ggabc6126af1d45847bc59afa0aa3216b04ae318b9fc662b0e9115317b616b789859">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggabc6126af1d45847bc59afa0aa3216b04a57fc098d5513cb8375be61ee2d7445e0">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggabc6126af1d45847bc59afa0aa3216b04af8036e995b06ac465aad4036deb12476">DRV_EXT_LIGHT_STATUS_CODE_NOT_SUPPORTED</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggabc6126af1d45847bc59afa0aa3216b04a34004449eeeb385b460705c537192009">DRV_EXT_LIGHT_STATUS_CODE_INVALID_LIGHT_TYPE</a>, 
<br />
&#160;&#160;<a class="el" href="group__gpio__ext__driver__led.html#ggabc6126af1d45847bc59afa0aa3216b04a6060d6f7cbe1a777c1f3602acb537c13">DRV_EXT_LIGHT_STATUS_CODE_INVALID_TIMER_VALUE</a>
<br />
 }<tr class="memdesc:gabc6126af1d45847bc59afa0aa3216b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">The GPIO extender LED driver status codes.  <a href="group__gpio__ext__driver__led.html#gabc6126af1d45847bc59afa0aa3216b04">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gabc6126af1d45847bc59afa0aa3216b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ef0e9b9c612cd4b33abc08f125ef661"><td class="memItemLeft" align="right" valign="top"><a id="ga7ef0e9b9c612cd4b33abc08f125ef661"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga7ef0e9b9c612cd4b33abc08f125ef661">drv_ext_light_clkx_div_t</a> <tr class="memdesc:ga7ef0e9b9c612cd4b33abc08f125ef661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the frequency of the LED driver clock (ClkX) of the SX1509 according to ClkX = fOSC/2^(DRV_EXT_LIGHT_CLKX_DIV_n-1). See SX1509 datasheet for details. <br /></td></tr>
</td></tr>
<tr class="separator:ga7ef0e9b9c612cd4b33abc08f125ef661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3504350ffa8b0b351100141ffbb6d4fe"><td class="memItemLeft" align="right" valign="top"><a id="ga3504350ffa8b0b351100141ffbb6d4fe"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga3504350ffa8b0b351100141ffbb6d4fe">drv_ext_light_color_mix_t</a> <tr class="memdesc:ga3504350ffa8b0b351100141ffbb6d4fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The following color combinations are possible when using <a class="el" href="structdrv__ext__light__rgb__sequence__t.html">drv_ext_light_rgb_sequence_t</a>. <br /></td></tr>
</td></tr>
<tr class="separator:ga3504350ffa8b0b351100141ffbb6d4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad263d177e76a81d90bd0db8e5fe9385c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#gad263d177e76a81d90bd0db8e5fe9385c">drv_ext_light_ioext_osc_status_t</a> { <br />
&#160;&#160;<a class="el" href="group__gpio__ext__driver__led.html#ggad263d177e76a81d90bd0db8e5fe9385cae99661732c937559d4ca54e9918c6c2a">EXTENDER_OSC_UNUSED</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggad263d177e76a81d90bd0db8e5fe9385ca103a89f09b1e03b2d0014bf6d5d93803">EXTENDER_OSC_USED_RUNNING</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggad263d177e76a81d90bd0db8e5fe9385ca5f082501e46d840360ef0675fb274b63">EXTENDER_OSC_USED_PAUSED</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#ggad263d177e76a81d90bd0db8e5fe9385caa56831e76c12a706a67a03916e25482a">EXTENDER_OSC_USED_PERM</a>, 
<br />
&#160;&#160;<a class="el" href="group__gpio__ext__driver__led.html#ggad263d177e76a81d90bd0db8e5fe9385ca3bf6e29267c5a9b53460493d52e39e6b">IOEXT_OSC_STATUS_T_SIZE</a>
<br />
 }<tr class="memdesc:gad263d177e76a81d90bd0db8e5fe9385c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The state of the IO extender oscillator for each light.  <a href="group__gpio__ext__driver__led.html#gad263d177e76a81d90bd0db8e5fe9385c">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gad263d177e76a81d90bd0db8e5fe9385c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27dd1b25921842fe3ae57b27625f4520"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga27dd1b25921842fe3ae57b27625f4520">drv_ext_light_reg_type_t</a> { <a class="el" href="group__gpio__ext__driver__led.html#gga27dd1b25921842fe3ae57b27625f4520ab00fed06b2cbbf4a55569a771682aea7">DRV_EXT_LIGHT_TYPE_MONO</a>, 
<a class="el" href="group__gpio__ext__driver__led.html#gga27dd1b25921842fe3ae57b27625f4520a60c82fbd5c37b392b06568abb2d34adb">DRV_EXT_LIGHT_TYPE_RGB</a>
 }<tr class="memdesc:ga27dd1b25921842fe3ae57b27625f4520"><td class="mdescLeft">&#160;</td><td class="mdescRight">Monochrome (single) or RGB light.  <a href="group__gpio__ext__driver__led.html#ga27dd1b25921842fe3ae57b27625f4520">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga27dd1b25921842fe3ae57b27625f4520"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga7a4426fa7e6fa57d7fa9d9a208ecbaf6"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga7a4426fa7e6fa57d7fa9d9a208ecbaf6">drv_ext_light_init</a> (<a class="el" href="structdrv__ext__light__init__t.html">drv_ext_light_init_t</a> const *p_init, bool on_init_reset)</td></tr>
<tr class="memdesc:ga7a4426fa7e6fa57d7fa9d9a208ecbaf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for initializing the drv_ext_light driver.  <a href="#ga7a4426fa7e6fa57d7fa9d9a208ecbaf6">More...</a><br /></td></tr>
<tr class="separator:ga7a4426fa7e6fa57d7fa9d9a208ecbaf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4ebb69047b9423d8ee1b32012905ec8"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#gaf4ebb69047b9423d8ee1b32012905ec8">drv_ext_light_intensity_set</a> (uint32_t id, uint8_t intensity)</td></tr>
<tr class="memdesc:gaf4ebb69047b9423d8ee1b32012905ec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for setting intensity of monochrome light.  <a href="#gaf4ebb69047b9423d8ee1b32012905ec8">More...</a><br /></td></tr>
<tr class="separator:gaf4ebb69047b9423d8ee1b32012905ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9e6f07ddc6264f7a5c1fe8bc6f88c72"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#gac9e6f07ddc6264f7a5c1fe8bc6f88c72">drv_ext_light_off</a> (uint32_t id)</td></tr>
<tr class="memdesc:gac9e6f07ddc6264f7a5c1fe8bc6f88c72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for turning a given light off.  <a href="#gac9e6f07ddc6264f7a5c1fe8bc6f88c72">More...</a><br /></td></tr>
<tr class="separator:gac9e6f07ddc6264f7a5c1fe8bc6f88c72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d97adbf138f2bac221b0ddd0873f729"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga0d97adbf138f2bac221b0ddd0873f729">drv_ext_light_on</a> (uint32_t id)</td></tr>
<tr class="memdesc:ga0d97adbf138f2bac221b0ddd0873f729"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for turning a given light on.  <a href="#ga0d97adbf138f2bac221b0ddd0873f729">More...</a><br /></td></tr>
<tr class="separator:ga0d97adbf138f2bac221b0ddd0873f729"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8fe19008186699f778b44392ea4d3472"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga8fe19008186699f778b44392ea4d3472">drv_ext_light_reset</a> (void)</td></tr>
<tr class="memdesc:ga8fe19008186699f778b44392ea4d3472"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for resetting all the registers of the IO extender to their default values.  <a href="#ga8fe19008186699f778b44392ea4d3472">More...</a><br /></td></tr>
<tr class="separator:ga8fe19008186699f778b44392ea4d3472"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9095af792e1f6dde9b4e17756d636015"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga9095af792e1f6dde9b4e17756d636015">drv_ext_light_rgb_intensity_set</a> (uint32_t id, <a class="el" href="structdrv__ext__light__rgb__intensity__t.html">drv_ext_light_rgb_intensity_t</a> const *const p_intensity)</td></tr>
<tr class="memdesc:ga9095af792e1f6dde9b4e17756d636015"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for setting color for RGB LEDs.  <a href="#ga9095af792e1f6dde9b4e17756d636015">More...</a><br /></td></tr>
<tr class="separator:ga9095af792e1f6dde9b4e17756d636015"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e5cc72e8fb9bb112d3a556f7a2b69fa"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga0e5cc72e8fb9bb112d3a556f7a2b69fa">drv_ext_light_rgb_sequence</a> (uint32_t id, <a class="el" href="structdrv__ext__light__rgb__sequence__t.html">drv_ext_light_rgb_sequence_t</a> *const p_sequence)</td></tr>
<tr class="memdesc:ga0e5cc72e8fb9bb112d3a556f7a2b69fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for setting color for a given light through the GPIO extender.  <a href="#ga0e5cc72e8fb9bb112d3a556f7a2b69fa">More...</a><br /></td></tr>
<tr class="separator:ga0e5cc72e8fb9bb112d3a556f7a2b69fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fccbca89dfd54f5fbdf2764ffca4e24"><td class="memItemLeft" align="right" valign="top">ret_code_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gpio__ext__driver__led.html#ga1fccbca89dfd54f5fbdf2764ffca4e24">drv_ext_light_sequence</a> (uint32_t id, drv_ext_light_sequence_t *const p_sequence)</td></tr>
<tr class="memdesc:ga1fccbca89dfd54f5fbdf2764ffca4e24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function for setting color for a given light through the GPIO extender.  <a href="#ga1fccbca89dfd54f5fbdf2764ffca4e24">More...</a><br /></td></tr>
<tr class="separator:ga1fccbca89dfd54f5fbdf2764ffca4e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>GPIO extender LED driver API. </p>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gabc6126af1d45847bc59afa0aa3216b04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabc6126af1d45847bc59afa0aa3216b04">&#9670;&nbsp;</a></span>anonymous enum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The GPIO extender LED driver status codes. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggabc6126af1d45847bc59afa0aa3216b04ae318b9fc662b0e9115317b616b789859"></a>DRV_EXT_LIGHT_STATUS_CODE_SUCCESS&#160;</td><td class="fielddoc"><p>Successful. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggabc6126af1d45847bc59afa0aa3216b04a57fc098d5513cb8375be61ee2d7445e0"></a>DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM&#160;</td><td class="fielddoc"><p>Invalid parameters. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggabc6126af1d45847bc59afa0aa3216b04af8036e995b06ac465aad4036deb12476"></a>DRV_EXT_LIGHT_STATUS_CODE_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>Not supported. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggabc6126af1d45847bc59afa0aa3216b04a34004449eeeb385b460705c537192009"></a>DRV_EXT_LIGHT_STATUS_CODE_INVALID_LIGHT_TYPE&#160;</td><td class="fielddoc"><p>The type of light is not supported. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggabc6126af1d45847bc59afa0aa3216b04a6060d6f7cbe1a777c1f3602acb537c13"></a>DRV_EXT_LIGHT_STATUS_CODE_INVALID_TIMER_VALUE&#160;</td><td class="fielddoc"><p>The desired time is too long. Increase the ClkX divider. </p>
</td></tr>
</table>

</div>
</div>
<a id="gad263d177e76a81d90bd0db8e5fe9385c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad263d177e76a81d90bd0db8e5fe9385c">&#9670;&nbsp;</a></span>drv_ext_light_ioext_osc_status_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__gpio__ext__driver__led.html#gad263d177e76a81d90bd0db8e5fe9385c">drv_ext_light_ioext_osc_status_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The state of the IO extender oscillator for each light. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggad263d177e76a81d90bd0db8e5fe9385cae99661732c937559d4ca54e9918c6c2a"></a>EXTENDER_OSC_UNUSED&#160;</td><td class="fielddoc"><p>Ext osc not used for this light. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggad263d177e76a81d90bd0db8e5fe9385ca103a89f09b1e03b2d0014bf6d5d93803"></a>EXTENDER_OSC_USED_RUNNING&#160;</td><td class="fielddoc"><p>Ext osc running (Light currently on). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggad263d177e76a81d90bd0db8e5fe9385ca5f082501e46d840360ef0675fb274b63"></a>EXTENDER_OSC_USED_PAUSED&#160;</td><td class="fielddoc"><p>Ext osc paused (Light currently off). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggad263d177e76a81d90bd0db8e5fe9385caa56831e76c12a706a67a03916e25482a"></a>EXTENDER_OSC_USED_PERM&#160;</td><td class="fielddoc"><p>Ext osc used on a permanent basis (light dimmed). </p>
</td></tr>
<tr><td class="fieldname"><a id="ggad263d177e76a81d90bd0db8e5fe9385ca3bf6e29267c5a9b53460493d52e39e6b"></a>IOEXT_OSC_STATUS_T_SIZE&#160;</td><td class="fielddoc"><p>Number of different possible IO extender oscillator statuses. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga27dd1b25921842fe3ae57b27625f4520"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga27dd1b25921842fe3ae57b27625f4520">&#9670;&nbsp;</a></span>drv_ext_light_reg_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__gpio__ext__driver__led.html#ga27dd1b25921842fe3ae57b27625f4520">drv_ext_light_reg_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Monochrome (single) or RGB light. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga27dd1b25921842fe3ae57b27625f4520ab00fed06b2cbbf4a55569a771682aea7"></a>DRV_EXT_LIGHT_TYPE_MONO&#160;</td><td class="fielddoc"><p>Monochrome (single) LED. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga27dd1b25921842fe3ae57b27625f4520a60c82fbd5c37b392b06568abb2d34adb"></a>DRV_EXT_LIGHT_TYPE_RGB&#160;</td><td class="fielddoc"><p>RGB LED (three IOs used). </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga7a4426fa7e6fa57d7fa9d9a208ecbaf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a4426fa7e6fa57d7fa9d9a208ecbaf6">&#9670;&nbsp;</a></span>drv_ext_light_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structdrv__ext__light__init__t.html">drv_ext_light_init_t</a> const *&#160;</td>
          <td class="paramname"><em>p_init</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>on_init_reset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for initializing the drv_ext_light driver. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p_init</td><td>Contains the full configuration struct sent to drv_ext_light_init <a class="el" href="structdrv__ext__light__init__t.html">drv_ext_light_init_t</a>. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">on_init_reset</td><td>If true, the io extender will be reset on init. This will put the io extender in a known state, but will delete any previous configurations, even from other drivers.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Make sure that APP_SCHED_INIT and APP_TIMER_APPSH_INIT have been run prior to this function call. Also note that this driver will take full control of the IO extender oscillator. This may influence other HW connected to the extender on other pins. p_init-&gt;p_light_conf-&gt;p_data must reside in RAM.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf4ebb69047b9423d8ee1b32012905ec8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf4ebb69047b9423d8ee1b32012905ec8">&#9670;&nbsp;</a></span>drv_ext_light_intensity_set()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_intensity_set </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>intensity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for setting intensity of monochrome light. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Specifies the ID of the given light. (Has to be in the range [0, num_lights-1]). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">intensity</td><td>(0-255).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gac9e6f07ddc6264f7a5c1fe8bc6f88c72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9e6f07ddc6264f7a5c1fe8bc6f88c72">&#9670;&nbsp;</a></span>drv_ext_light_off()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_off </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for turning a given light off. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Valid light ID (Has to be in the range [0, num_lights-1]).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>In case the given LED ID corresponds to a RGB light, all colors will be set to 0 intensity.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga0d97adbf138f2bac221b0ddd0873f729"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0d97adbf138f2bac221b0ddd0873f729">&#9670;&nbsp;</a></span>drv_ext_light_on()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_on </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for turning a given light on. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Valid light ID.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>In case the given LED ID corresponds to an RGB light, all colors will be set to max intensity.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga8fe19008186699f778b44392ea4d3472"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8fe19008186699f778b44392ea4d3472">&#9670;&nbsp;</a></span>drv_ext_light_reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_reset </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for resetting all the registers of the IO extender to their default values. </p>
<dl class="section warning"><dt>Warning</dt><dd>This reset applies to all registers, regardless if they were set by another driver outside of drv_ext_light.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga9095af792e1f6dde9b4e17756d636015"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9095af792e1f6dde9b4e17756d636015">&#9670;&nbsp;</a></span>drv_ext_light_rgb_intensity_set()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_rgb_intensity_set </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdrv__ext__light__rgb__intensity__t.html">drv_ext_light_rgb_intensity_t</a> const *const&#160;</td>
          <td class="paramname"><em>p_intensity</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for setting color for RGB LEDs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Specifies the ID of the given light. (Has to be in the range [0, num_lights-1]). </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">p_intensity</td><td>(0-255).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga0e5cc72e8fb9bb112d3a556f7a2b69fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e5cc72e8fb9bb112d3a556f7a2b69fa">&#9670;&nbsp;</a></span>drv_ext_light_rgb_sequence()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_rgb_sequence </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structdrv__ext__light__rgb__sequence__t.html">drv_ext_light_rgb_sequence_t</a> *const&#160;</td>
          <td class="paramname"><em>p_sequence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for setting color for a given light through the GPIO extender. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Specifies the ID of the given light. (Has to be in the range [0, num_lights-1]). </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">p_sequence</td><td>RGB sequence struct. s </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The actual timings in milliseconds will not necessarily correspond to the supplied times. The underlying functionality will choose register values to obtain timings as close as possible. Adjusting drv_ext_light_clkx_div_t::clkx_div supplied to drv_ext_light_init will influence the accuracy of this function. Also note that for the remaining intensity and fade parameters, values will be set as close as possible to the desired values. The user may read back p_sequence, which will be populated with the actual values. </dd>
<dd>
If the resync_pin is used, calling this function will resync all counters on the IO extender.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga1fccbca89dfd54f5fbdf2764ffca4e24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1fccbca89dfd54f5fbdf2764ffca4e24">&#9670;&nbsp;</a></span>drv_ext_light_sequence()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ret_code_t drv_ext_light_sequence </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">drv_ext_light_sequence_t *const&#160;</td>
          <td class="paramname"><em>p_sequence</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Function for setting color for a given light through the GPIO extender. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Specifies the ID of the given light. (Has to be in the range [0, num_lights-1]). </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">p_sequence</td><td>Sequence struct.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The actual timings in milliseconds will not necessarily correspond to the supplied times. The underlying functionality will choose register values to obtain timings as close as possible. Adjusting DRV_EXT_LIGHT_CLKX_DIV will influence the accuracy of this function. Also note that for the remaining intensity and fade parameters, values will be set as close as possible to the desired values. The user may read back p_sequence, which will be populated with the actual values. </dd>
<dd>
If the resync_pin is used, calling this function will resync all counters on the IO extender.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Status codes from this function. (Return codes may originate from other underlying modules/drivers as well which are not listed below). </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_SUCCESS</td><td></td></tr>
    <tr><td class="paramname">DRV_EXT_LIGHT_STATUS_CODE_INVALID_PARAM</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="topicfooter">
<a href="mailto:docfeedback@nordicsemi.no?subject=Documentation%20feedback" id="maillink">Documentation feedback</a> | <a href="https://devzone.nordicsemi.com/questions/" target="_blank">Developer Zone</a> | <a href="http://response.nordicsemi.com/subscribe-to-our-newsletters" target="_blank">Subscribe</a> | Updated <span id="date"/>
<script>
var date = new Date("Thu Feb 7 2019" + " UTC");
document.getElementById("date").innerHTML = date.toJSON().slice(0, 10);
var url=window.location.href.split("?")[0];
var filename=url.substring(url.lastIndexOf('/')+1);
document.getElementById("maillink").href = "mailto:docfeedback@nordicsemi.no?subject=Documentation%20feedback"+decodeURIComponent("%26")+"body=File%20name%3A%20"+encodeURIComponent(filename);
</script>
</div>
</body>
</html>
